﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Sinacor.Infra.UI.Common;

namespace Sinacor.UI.Bovespa.ImportacaoExportacao.Model.Parameter
{
    [Serializable]
    public class FiltroImportacaoDistribuicao : BaseModel, IFiltroImportacaoExportacao 
    {
        #region Atributos

        private DateTime? _dataPregao;
        private string _nomeArquivo;
        private Enum.TipoSistema _tipoSistema;
        private Enum.TipoArquivo _tipoArquivo;
        private Enum.TipoFormatoArquivo _tipoFormatoArquivo;
        private Enum.TipoFormaDistribuicao? _tipoDistribuicao;
        private Enum.TipoDistribuicaoPrecoMedio? _tipoDistribuicaoPrecooMedio;
        private bool _calcularAcrescimoDecrescimo;

        #endregion

        #region Construtor

        public FiltroImportacaoDistribuicao()
        {
        }

        #endregion

        #region Propriedades

        public DateTime? DataPregao
        {
            get
            {
                return _dataPregao;
            }
            set
            {
                SetValue<DateTime?>("DataPregao", ref _dataPregao, value);
            }
        }

        public string NomeArquivo
        {
            get 
            { 
                return _nomeArquivo; 
            }
            set 
            {
                SetValue<string>("NomeArquivo", ref _nomeArquivo, value);
            }
        }

        public Enum.TipoSistema TipoSistema
        {
            get 
            { 
                return _tipoSistema; 
            }
            set 
            {
                SetValue<Enum.TipoSistema>("TipoSistema", ref _tipoSistema, value);
            }
        }

        public Enum.TipoArquivo TipoArquivo
        {
            get
            {
                return _tipoArquivo;
            }
            set
            {
                SetValue<Enum.TipoArquivo>("TipoArquivo", ref _tipoArquivo, value);
            }
        }

        public Enum.TipoFormatoArquivo TipoFormatoArquivo
        {
            get 
            { 
                return _tipoFormatoArquivo; 
            }
            set 
            {
                SetValue<Enum.TipoFormatoArquivo>("TipoFormatoArquivo", ref _tipoFormatoArquivo, value);
            }
        }

        public Enum.TipoFormaDistribuicao? TipoDistribuicao
        {
            get 
            { 
                return _tipoDistribuicao; 
            }
            set 
            {
                SetValue<Enum.TipoFormaDistribuicao?>("TipoDistribuicao", ref _tipoDistribuicao, value);
            }
        }

        public Enum.TipoDistribuicaoPrecoMedio? TipoDistribuicaoPrecoMedio
        {
            get 
            { 
                return _tipoDistribuicaoPrecooMedio; 
            }
            set 
            {
                SetValue<Enum.TipoDistribuicaoPrecoMedio?>("TipoDistribuicaoPrecoMedio", ref _tipoDistribuicaoPrecooMedio, value);
            }
        }

        public bool CalcularAcrescimoDecrescimo
        {
            get 
            { 
                return _calcularAcrescimoDecrescimo; 
            }
            set 
            {
                SetValue<bool>("CalcularAcrescimoDecrescimo", ref _calcularAcrescimoDecrescimo, value);
            }
        }

        #endregion
    }
}
